OCTET: Practical Concurrency Control for Dynamic Analyses and Systems

نویسندگان

  • Michael D. Bond
  • Milind Kulkarni
  • Meisam Fathi Salmi
  • Minjia Zhang
  • Swarnendu Biswas
  • Jipeng Huang
  • Aritra Sengupta
چکیده

Parallel programming is essential for reaping the benefits of parallel hardware, but it is notoriously difficult to develop and debug reliable, scalable software systems. One key challenge is that modern languages and systems provide poor support for ensuring concurrency correctness properties—such as atomicity, sequential consistency, and multithreaded determinism—because all existing approaches are impractical. Dynamic, software-based approaches slow programs by up to an order of magnitude because capturing cross-thread dependences (i.e., conflicting accesses) requires synchronization at every access to potentially shared memory. This paper introduces a new software-based concurrency control mechanism called OCTET that captures cross-thread dependences soundly but avoids synchronization at non-conflicting accesses. OCTET tracks the locality state of each potentially shared object. Non-conflicting accesses conform to the locality state and require no synchronization, but conflicting accesses require a state change with heavyweight synchronization. This optimistic tradeoff performs well for real-world concurrent programs, which by design execute relatively few conflicting accesses. We have implemented a prototype of OCTET in a high-performance Java virtual machine. Our evaluation demonstrates OCTET’s potential for capturing cross-thread dependences with overhead low enough for production systems. OCTET is an appealing and practical concurrency control mechanism for designing low-overhead, sound and precise analyses and systems that check and enforce concurrency correctness properties.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Survey of Concurrency Control Algorithms in the Operating Systems

Concurrency control is one of the important problems in operation systems. Various studies have been reported to present different algorithms to address this problem, although a few attempts have been made to represent an overall view of the characteristics of these algorithms and comparison of their capabilities to each other. This paper presents a survey of the current methods for controlling...

متن کامل

A Survey of Concurrency Control Algorithms in the Operating Systems

Concurrency control is one of the important problems in operation systems. Various studies have been reported to present different algorithms to address this problem, although a few attempts have been made to represent an overall view of the characteristics of these algorithms and comparison of their capabilities to each other. This paper presents a survey of the current methods for controlling...

متن کامل

Optimization of majority protocol for controlling transactions concurrency in distributed databases by multi-agent systems

In this paper, we propose a new concurrency control algorithm based on multi-agent systems which is an extension of majority protocol. Then, we suggest a clustering approach to get better results in reliability, decreasing message passing and algorithm’s runtime. Here, we consider n different transactions working on non-conflict data items. Considering execution efficiency of some different...

متن کامل

Passivity-Based Stability Analysis and Robust Practical Stabilization of Nonlinear Affine Systems with Non-vanishing Perturbations

This paper presents some analyses about the robust practical stability of a class of nonlinear affine systems in the presence of non-vanishing perturbations based on the passivity concept. The given analyses confirm the robust passivity property of the perturbed nonlinear systems in a certain region. Moreover, robust control laws are designed to guarantee the practical stability of the perturbe...

متن کامل

An Integrated Approach to Correct and Secure Computing Systems

Today’s computing systems are built with vivid abstractions using a wide range of programming languages, software tool chains, and for different target domains (e.g. servers, low power devices) with different cost-performance tradeoffs. As complex computing systems become ubiquitous, simple bugs can have catastrophic effects resulting in huge financial losses and even worse, injury or death. Re...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012